home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / getweb < prev    next >
Text File  |  2009-10-19  |  12KB  |  480 lines

  1. #!/bin/sh
  2.  
  3. #
  4. # (c) Copyright Rick Richardson 2008
  5. # This version has been modified by Debian
  6.  
  7. #
  8. # PLEASE don't remove the copyright statements.  They should 
  9. # be displayed to the human that is running this.
  10. #
  11.  
  12. VERSION='$Id: getweb.in,v 1.89 2009/06/23 18:31:20 rick Exp $'
  13.  
  14. WGETOPTS="--passive-ftp -q"
  15. ARM2HPDL="/usr/bin/arm2hpdl"
  16.  
  17. if [ $(id -ru) -ne 0 ]; then
  18.     echo "You need to be root"
  19.     exit 0
  20. fi
  21.  
  22.  
  23. usage() {
  24. cat <<EOF
  25.  
  26. Usage:
  27.     ./getweb something
  28.  
  29.     Convenience script to get extra somethings from the web,
  30.     such as ICC color profiles, firmware, PPD files, etc.
  31.  
  32.     $ ./getweb 1215    # Get HP Color LaserJet CP1215 .ICM files
  33.     $ ./getweb 1500    # Get HP Color LaserJet 1500 .ICM files
  34.     $ ./getweb 1600    # Get HP Color LaserJet 1600 .ICM files
  35.     $ ./getweb 2600n    # Get HP Color LaserJet 2600n .ICM files
  36.  
  37.     $ ./getweb 1600w    # Get Konica Minolta 1600W .ICM files
  38.     $ ./getweb 1680    # Get Konica Minolta 1680MF .ICM files
  39.     $ ./getweb 1690    # Get Konica Minolta 1690MF .ICM files
  40.     $ ./getweb 2480    # Get Konica Minolta 2480 MF .ICM files
  41.     $ ./getweb 2490    # Get Konica Minolta 2490 MF .ICM files
  42.     $ ./getweb 2530    # Get Konica Minolta 2530 DL .ICM files
  43.     $ ./getweb 4690    # Get Konica Minolta 4690MF .ICM files
  44.     $ ./getweb 6115    # Get Xerox Phaser 6115MFP .ICM files
  45.  
  46.     $ ./getweb 2200    # Get Minolta 2200 DL .ICM files
  47.     $ ./getweb 2300    # Get Minolta 2300 DL .ICM files
  48.     $ ./getweb 2430    # Get Konica Minolta 2430 DL .ICM files
  49.     $ ./getweb cpwl    # Get Minolta Color PageWorks/Pro L .ICM files
  50.  
  51.     $ ./getweb 300    # Get Samsung CLP-300 .ICM files
  52.     $ ./getweb 310    # Get Samsung CLP-310 .ICM files
  53.     $ ./getweb 315    # Get Samsung CLP-315 .ICM files
  54.     $ ./getweb 600    # Get Samsung CLP-600 .ICM files
  55.     $ ./getweb 610    # Get Samsung CLP-610 .ICM files
  56.     $ ./getweb 2160    # Get Samsung CLX-2160 .ICM files
  57.     $ ./getweb 3160    # Get Samsung CLX-3160 .ICM files
  58.     $ ./getweb 3175    # Get Samsung CLX-3175 .ICM files
  59.     $ ./getweb 6110    # Get Xerox Phaser 6110 and 6110MFP .ICM files
  60.  
  61.     $ ./getweb 500    # Get Lexmark C500 .ICM files
  62.  
  63.     $ ./getweb 3100    # Get Oki C3100 .ICM files
  64.     $ ./getweb 3200    # Get Oki C3200 .ICM files
  65.     $ ./getweb 3300    # Get Oki C3300 .ICM files
  66.     $ ./getweb 3400    # Get Oki C3400 .ICM files
  67.     $ ./getweb 3530    # Get Oki C3530 MFP .ICM files
  68.     $ ./getweb 5100    # Get Oki C5100 / C5150n .ICM files
  69.     $ ./getweb 5200    # Get Oki C5200 .ICM files
  70.     $ ./getweb 5500    # Get Oki C5500 .ICM files
  71.     $ ./getweb 5600    # Get Oki C5600 .ICM files
  72.     $ ./getweb 5800    # Get Oki C5800 .ICM files
  73.  
  74.     $ ./getweb 1000    # Get HP LJ 1000 firmware file
  75.     $ ./getweb 1005    # Get HP LJ 1005 firmware file
  76.     $ ./getweb 1018    # Get HP LJ 1005 firmware file
  77.     $ ./getweb 1020    # Get HP LJ 1020 firmware file
  78.  
  79.     $ ./getweb p1005    # Get HP LJ P1005 firmware file
  80.     $ ./getweb p1006    # Get HP LJ P1006 firmware file
  81.     $ ./getweb p1007    # Get HP LJ P1007 firmware file
  82.     $ ./getweb p1008    # Get HP LJ P1008 firmware file
  83.     $ ./getweb p1505    # Get HP LJ P1505 firmware file
  84.  
  85.     $ ./getweb all    # Get everything above
  86.  
  87.     $ ./getweb 2300dl_fw # Get Minolta 2300DL v2.55 firmware (experts only)
  88.  
  89.     $ ./getweb update    # Get latest version of this software.
  90. EOF
  91.     exit 1
  92. }
  93.  
  94. #
  95. #       Report an error and exit
  96. #
  97. PROGNAME=$0
  98. error() {
  99.     echo "`basename $PROGNAME`: $1" >&2
  100.     exit 1
  101. }
  102.  
  103. SYSTEM=`uname -s`
  104. WGET=`which wget`
  105. if [ "$SYSTEM" = Darwin -a "$WGET" = "" ]
  106. then
  107.     WGETOPTS=
  108.     wget() {
  109.     shift
  110.     curl -o $*
  111.     }
  112. fi
  113.  
  114. putfw() {
  115.     inputname=$1
  116.     outputname=$2
  117.     $ARM2HPDL /usr/share/foo2zjs/tmp/$inputname > /usr/share/foo2zjs/firmware/$outputname
  118.     rm -f /usr/share/foo2zjs/tmp/*.img
  119. }
  120.  
  121. #
  122. #    Download a .EXE file from the web, unzip it, and extract the
  123. #    files we want
  124. getexe() {
  125.     url="$1"
  126.     exefile="$2"
  127.     shift; shift
  128.     
  129.     wget $WGETOPTS -O $exefile "$url/$exefile" ||
  130.     error "Couldn't download $url/$exefile"
  131.     unzip -oj $exefile "$@"
  132.     rm $exefile
  133. }
  134.  
  135. #
  136. #    Download a .tar.gz file from the web, untar it, and extract the
  137. #    files we want
  138. gettgz() {
  139.     url="$1"
  140.     file="$2"
  141.     what="$3"
  142.     
  143.     if ! [ -d /tmp/foo2zjs ] ; then
  144.     wget $WGETOPTS -O /usr/share/foo2zjs/tmp/$file "$url/$file" ||
  145.             error "Couldn't download $url/$file"
  146.     cd /usr/share/foo2zjs/tmp && gunzip </usr/share/foo2zjs/tmp/$file | tar xvf - $what
  147.     CHECK=`ls /usr/share/foo2zjs/tmp/*.icm 2>/dev/null`
  148.     if [ -n "$CHECK" ] ; then
  149.             mv /usr/share/foo2zjs/tmp/*.icm /usr/share/foo2zjs/icm/
  150.     fi
  151.     rm /usr/share/foo2zjs/tmp/$file
  152.     fi
  153. }
  154.  
  155. copyright() {
  156.     echo
  157.     echo "$1"
  158.     echo
  159. }
  160.  
  161. getone() {
  162.     case "$1" in
  163.     lj1000|1000)
  164.     gettgz \
  165.         http://foo2zjs.rkkda.com/firmware sihp1000.tar.gz \
  166.         ""
  167.     #echo "provided"
  168.     #getexe \
  169.         #ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2 \
  170.         #lj1488en.exe \
  171.         #sihp1000.img
  172.     copyright "(c) Copyright Hewlett-Packard 2001"
  173.     putfw sihp1000.img sihp1000.dl
  174.     ;;
  175.     lj1005|1005)
  176.     gettgz \
  177.         http://foo2zjs.rkkda.com/firmware sihp1005.tar.gz \
  178.         ""
  179.     #echo "provided"
  180.     #getexe \
  181.         #ftp://ftp.hp.com/pub/softlib/software2/COL2222/lj-10067-2 \
  182.         #lj1005hostbased-en.exe \
  183.         #sihp1005.img
  184.     copyright "(c) Copyright Hewlett-Packard 2002"
  185.     putfw sihp1005.img sihp1005.dl
  186.     ;;
  187.     lj1018|1018)
  188.     gettgz \
  189.         http://foo2zjs.rkkda.com/firmware sihp1018.tar.gz \
  190.         ""
  191.     copyright "(c) Copyright Hewlett-Packard 2005"
  192.     putfw sihp1018.img sihp1018.dl
  193.     ;;
  194.     lj1020|1020)
  195.     gettgz \
  196.         http://foo2zjs.rkkda.com/firmware sihp1020.tar.gz \
  197.         ""
  198.     copyright "(c) Copyright Hewlett-Packard 2005"
  199.     putfw sihp1020.img sihp1020.dl
  200.     ;;
  201.     [pP]100[57])
  202.     gettgz \
  203.         http://foo2zjs.rkkda.com/firmware sihpP1005.tar.gz \
  204.         ""
  205.     copyright "(c) Copyright Hewlett-Packard 2008"
  206.     putfw sihpP1005.img sihpP1005.dl
  207.     ;;
  208.     [pP]100[68])
  209.     gettgz \
  210.         http://foo2zjs.rkkda.com/firmware sihpP1006.tar.gz \
  211.         ""
  212.     copyright "(c) Copyright Hewlett-Packard 2008"
  213.     ;;
  214.     [pP]1505)
  215.     gettgz \
  216.         http://foo2zjs.rkkda.com/firmware sihpP1505.tar.gz \
  217.         ""
  218.     copyright "(c) Copyright Hewlett-Packard 2008"
  219.     ;;
  220.     2200dl|2200)
  221.     if false; then
  222.         gettgz \
  223.         http://foo2zjs.rkkda.com/icm dl2300.tar.gz \
  224.         ""
  225.     else
  226.         getexe \
  227.         http://printer.konicaminolta.net/drivers/win2000 m22dlicc.exe \
  228.         "*.icm"
  229.     fi
  230.     copyright "(c) Copyright Minolta-QMS 1999"
  231.     putfw sihp1020.img sihp1020.dl
  232.     ;;
  233.     2300dl|2300)
  234.     if false; then
  235.         gettgz \
  236.         http://foo2zjs.rkkda.com/icm dl2300.tar.gz \
  237.         ""
  238.     else
  239.         getexe \
  240.         http://printer.konicaminolta.net/drivers/other m23dlicc.exe \
  241.         "*.icm"
  242.     fi
  243.     gettgz \
  244.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  245.         ""
  246.     copyright "(c) Copyright Minolta-QMS 2001"
  247.     ;;
  248.     2300dl_fw)
  249.     # 2300DL firmware upgrade to v2.55
  250.     BASE="http://crm01.minoltaeurope.com"
  251.     BASE="$BASE/openmind/technic/swfw/mswprtdl.nsf/logdwl"
  252.     FILE="MC2300DL_v255.zip"
  253.     URL="$BASE?openagent&4CE486C20839C75AC1256D9E001EBD1F/\$File/$FILE"
  254.     wget $WGETOPTS "$URL" || error "Couldn't download $URL"
  255.     echo "*** Now use a windows box to unzip and install $FILE ***"
  256.     ;;
  257.     cpwl|pageworks)
  258.     if true; then
  259.         gettgz \
  260.         http://foo2zjs.rkkda.com/icm dl2300.tar.gz \
  261.         ""
  262.     else
  263.         getexe \
  264.         ftp://ftp.minolta-qms.com/pub/crc/out_going/windows cpplxp.exe \
  265.         "*.IC_"
  266.         for i in C*.IC_
  267.         do
  268.         base=`basename $i .IC_`
  269.         mv $base.IC_ $base.ic_
  270.         ./msexpand $base.ic_
  271.         rm -f $base.ic_
  272.         done
  273.     fi
  274.     copyright "(c) Copyright Minolta-QMS 1998"
  275.     ;;
  276.     2430)
  277.     gettgz \
  278.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  279.         ""
  280.     copyright "(c) Copyright Konica Minolta 2003"
  281.     ;;
  282.     2530|2490|6115|2480|1600w|1680|1690|4690)
  283.     gettgz \
  284.         http://foo2lava.rkkda.com/icm km2530.tar.gz \
  285.         ""
  286.     copyright "(c) Copyright Konica Minolta 2005"
  287.     copyright "(c) Copyright Rick Richardson 2007.  All Rights Reserved"
  288.     gettgz \
  289.         http://foo2lava.rkkda.com/icm km-1600.tar.gz \
  290.         ""
  291.     copyright "(c) Copyright Rick Richardson 2009.  All Rights Reserved"
  292.     ;;
  293.     1215|1500|1600|2600*)
  294.     gettgz \
  295.         http://foo2hp.rkkda.com/icm hpclj2600n.tar.gz \
  296.         ""
  297.     gettgz \
  298.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  299.         "km2430_2.icm"
  300.     copyright "(c) Copyright Hewlett-Packard 2003"
  301.     copyright "(c) Copyright Rick Richardson 2006.  All Rights Reserved"
  302.     gettgz \
  303.         http://foo2hp.rkkda.com/icm hp1215.tar.gz \
  304.         ""
  305.     copyright "(c) Copyright Rick Richardson 2008.  All Rights Reserved"
  306.     ;;
  307.     300|310|315|2160|3160|3175|6110)
  308.     gettgz \
  309.         http://foo2qpdl.rkkda.com/icm samclp300.tar.gz \
  310.         ""
  311.     copyright "(c) Copyright Rick Richardson 2007.  All Rights Reserved"
  312.     gettgz \
  313.         http://foo2qpdl.rkkda.com/icm samclp315.tar.gz \
  314.         ""
  315.     copyright "(c) Copyright Rick Richardson 2008.  All Rights Reserved"
  316.     ;;
  317.     600|610)
  318.     ;;
  319.  
  320.     500)
  321.     gettgz \
  322.         http://foo2slx.rkkda.com/icm lexc500.tar.gz \
  323.         ""
  324.     copyright "(c) Copyright Lexmark 2006"
  325.     ;;
  326.  
  327.     oki)
  328.     echo "Please wait, ~20MB is being downloaded from a slow site..."
  329.     getexe \
  330.         http://www.okiprintingsolutions.at/binaryData/16516/ \
  331.         ICCProfiles.zip \
  332.         "*OK3200*ICM" "*OK5600*ICM" "*rom732*7.zip"
  333.     unzip -oj *rom732*7.zip "*C3400*ICM"
  334.     rm -f *rom732*7.zip
  335.     for i in OK*ICM C3400*ICM; do
  336.         base=`basename $i .ICM`
  337.         mv "$base.ICM" "$base.icm"
  338.     done
  339.     copyright "(c) Copyright Okidata 2005, 2006"
  340.     ;;
  341.     3100|3200|5100|5150|5200|5250)
  342.     gettgz \
  343.         http://foo2hiperc.rkkda.com/icm okic3200.tar.gz \
  344.         ""
  345.     copyright "(c) Copyright Okidata 2005"
  346.     ;;
  347.     3300|3400|3530)
  348.     gettgz \
  349.         http://foo2hiperc.rkkda.com/icm okic3400.tar.gz \
  350.         ""
  351.     copyright "(c) Copyright Okidata 2006"
  352.     ;;
  353.     5500|5600|5800)
  354.     gettgz \
  355.         http://foo2hiperc.rkkda.com/icm okic5600.tar.gz \
  356.         ""
  357.     copyright "(c) Copyright Okidata 2006"
  358.     ;;
  359.  
  360.     xPPD)
  361.     # Snarf PPD files from linuxprinting
  362.     [ -d PPD ] || mkdir PPD
  363.     for i in foomatic-db/printer/*.xml
  364.     do
  365.         case "$i" in
  366.         */Gen*)    continue;;
  367.         esac
  368.         printer=`basename $i .xml`
  369.         echo $printer
  370.         case "$printer" in
  371.         *1500*|*oak*)    driver=foo2oak;;
  372.         *)            driver=foo2zjs;;
  373.         esac
  374.         URL="http://www.linuxprinting.org/ppd-o-matic.cgi"
  375.         URL="$URL?driver=$driver&printer=$printer"
  376.         URL="$URL&.submit=Generate+PPD+file"
  377.         URL="$URL&show=1&.cgifields=shortgui&.cgifields=show"
  378.         wget $WGETOPTS -O PPD/$printer.ppd "$URL" ||
  379.         error "Couldn't dowload $URL"
  380.     done
  381.     ;;
  382.     ppd)
  383.     # Generate PPD files using local tools
  384.     [ -d PPD ] || mkdir PPD
  385.     for i in foomatic-db/printer/*.xml
  386.     do
  387.         printer=`basename $i .xml`
  388.         echo $printer
  389.         case "$printer" in
  390.         *M1005*|*M1120*)    driver=foo2xqx;;
  391.         *P1[05]0[56]*)    driver=foo2xqx;;
  392.         *P2014*)        driver=foo2xqx;;
  393.         *1500*|*OAKT*)    driver=foo2oak;;
  394.         *1600*|*2600*)    driver=foo2hp;;
  395.         *1215*)        driver=foo2hp;;
  396.         *2530*|*24[89]0*)    driver=foo2lava;;
  397.         *6115*)        driver=foo2lava;;
  398.         *C500*)        driver=foo2slx;;
  399.         *C3[234]00*)    driver=foo2hiperc;;
  400.         *C5[12568]00*)    driver=foo2hiperc;;
  401.         *CLP*|*CLX*|*6110*)    driver=foo2qpdl;;
  402.         *)            driver=foo2zjs;;
  403.         esac
  404.         ENGINE=../foomatic/foomatic-db-engine
  405.         PERL5LIB=$ENGINE/lib $ENGINE/foomatic-ppdfile \
  406.         -d $driver -p $printer \
  407.         > PPD/$printer.ppd
  408.         # | sed -e 's/\(^\*NickName.*\)"/\1 (foo2zjs recommended)"/'
  409.     done
  410.     ;;
  411.     update)
  412.     url=http://foo2zjs.rkkda.com
  413.     file=foo2zjs.tar.gz
  414.     wget $WGETOPTS -O $file $url/$file ||
  415.         error "Couldn't download $url/$exefile"
  416.     mv getweb getweb.old
  417.     HERE=`pwd`
  418.     cd .. 
  419.     tar zxf $HERE/$file
  420.     cd $HERE
  421.     echo "The tarball is extracted and the current directory is up to date."
  422.     printf "Remove the tarball (y/n)? "
  423.     read ans
  424.     if [ "$ans" = y ]; then
  425.         rm -f $file
  426.     fi
  427.     ;;
  428.     "")
  429.     usage
  430.     ;;
  431.     *)
  432.     error "Don't know how to get extra stuff for printer $1"
  433.     ;;
  434.     esac
  435. }
  436.  
  437. if [ $# = 0 ]; then
  438.     echo "$VERSION"
  439.     usage
  440. fi
  441.  
  442. for i in $*
  443. do
  444.     case "$1" in
  445.     all)
  446.     getone 1000
  447.     getone 1005
  448.     getone 1018
  449.     getone 1020
  450.  
  451.     getone p1005
  452.     getone p1006
  453.     getone p1505
  454.  
  455.     getone 2200
  456.     getone 2300
  457.     # getone 2430 already done
  458.     # getone cpwl # file doesn't exist 1/28/08
  459.  
  460.     getone 2600n
  461.     # getone 1215 # already done
  462.  
  463.     getone 2530
  464.  
  465.     getone 300
  466.     # getone 6110 already done
  467.     getone 600
  468.  
  469.     getone 500
  470.  
  471.     getone 3200
  472.     getone 3400
  473.     getone 5600
  474.     ;;
  475.     *)    
  476.     getone $i
  477.     ;;
  478.     esac
  479. done
  480.